﻿using System.Windows.Forms;
using HighDiveEngine.Aggregates;
using HighDiveEngine.Model;

namespace HighDiveJudge.Interfaces
{
    public interface IJudgeApp
    {
        event MethodInvoker EventContestEnded;
        event MethodInvoker EventUpdateFromAdminProgram;
        event MethodInvoker EventLoginSuccessful;
        event MethodInvoker EventLoginRefused;
        event MethodInvoker EventConnectionFailed;

        Dive CurrentDive { get; set; }
        DiveList DiveHistory { get; set; }
        bool Connected { get; set; }
        void Login(string idString, string ipAdress, int port);
        void Logout();
        void UpdateScore(Dive dive, double score);
        void UpdateDiveHistory();
        void ClearDiveLists();
    }
}
